// COPYRIGHT Dassault Systemes 2010
//===================================================================
//
// CAAETreeNodeContent.h
// Provide implementation to interface
//    CATITreeNodeContent

//
//===================================================================
//
// Usage notes:
//
//===================================================================
//CAA2 Wizard Generation Report
//EXTENSION:	CATTreeNodeObj
//EXTENSIONTYPE:	DataExtension

//    TIE: CATITreeNodeContent

//End CAA2 Wizard Generation Report
//
//  Feb 2010  Creation: Code generated by the CAA wizard  user
//===================================================================
#ifndef CAAETreeNodeContent_H
#define CAAETreeNodeContent_H

#include "CATBaseUnknown.h"

#include "CATUnicodeString.h"

#include "CATCollec.h"

class CATLISTP(CATBaseUnknown);

//-----------------------------------------------------------------------

/**
* Class representing xxx.
*
* <br><b>Role</b>: Provide the basic class function...
* <p>
* It implements the interfaces :
*  <ol>
*  <li>@href CATITreeNodeContent
*  </ol>
*
* @href ClassReference, Class#MethodReference, #InternalMethod...
*/
class CAAETreeNodeContent: public CATBaseUnknown

{
  CATDeclareClass;

  public:

  // Standard constructors and destructors for an implementation class
  // -----------------------------------------------------------------
     CAAETreeNodeContent ();
     virtual ~CAAETreeNodeContent ();

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#SetNodeContent
     */
     HRESULT SetNodeContent (void *  iContent ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#GetNodeContent
     */
     HRESULT GetNodeContent (void **  oContent ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#SetName
     */
     HRESULT SetName (const CATUnicodeString &  iName ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#GetName
     */
     HRESULT GetName (CATUnicodeString &  oName ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#GetFatherNode
     */
     HRESULT GetFatherNode (CATBaseUnknown **  oFatherNode ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#SetFatherNode
     */
     HRESULT SetFatherNode (CATBaseUnknown *  iFatherNode ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#GetNumberOfSubTreeNodeObj
     */
     HRESULT GetNumberOfSubTreeNodeObj (int *  oCount ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#GetSubTreeNodeObj
     */
     HRESULT GetSubTreeNodeObj (int  iRank  , CATBaseUnknown **  oObject ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#AddSubTreeNodeObj
     */
     HRESULT AddSubTreeNodeObj (CATBaseUnknown *  iObject ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#RemoveSubTreeNodeObj
     */
     HRESULT RemoveSubTreeNodeObj (CATBaseUnknown *  iObject ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#EmptySubTree
     */
     HRESULT EmptySubTree () ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#Locate
     */
	 HRESULT Locate(CATBaseUnknown * iSubTreeNode, int * oRank);


	 /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#SetIconName
     */
     HRESULT SetIconName (const CATUnicodeString &  iIconName ) ;

    /**
     * Implements a function from an interface.
     * @href CATITreeNodeContent#GetIconName
     */
     HRESULT GetIconName (CATUnicodeString &  oIconName ) ;






  private:
  // The copy constructor and the equal operator must not be implemented
  // -------------------------------------------------------------------
  CAAETreeNodeContent (CAAETreeNodeContent &);
  CAAETreeNodeContent& operator=(CAAETreeNodeContent&);


  private:
	void * _pContent;

	CATUnicodeString _Name;

	CATUnicodeString _IconName;

	CATBaseUnknown * _pFatherNode;

	CATLISTP(CATBaseUnknown) * _pSubTreeNodeObjList;

};

//-----------------------------------------------------------------------

#endif
